#include <deque>
#include <iostream>

using namespace std;

#define N 10
#define OUT(arr, msg) do{ \
    cout << msg; \
    for (size_t i = 0; i < 10; i++) cout << arr[i] << " "; \
    cout << endl; \
}while(0)

int main(int argc, char const *argv[])
{
    /*****************************************************************************************************
     * deque 容器
     * ---------------------------------------------------------------------------------------------------
     * deque 是 double-ended-queue 的缩写
     * 相比vector,vector是在尾部方向可动态扩展大小， deque是在头部方向和尾部方向都可以动态扩展大小
     * deque 容器中存储元素并不能保证所有元素都存储到连续的内存空间中
     * 当需要向序列两端频繁的添加或删除元素时，应首选 deque 容器。
     *****************************************************************************************************/
    // -----------------------------------------------
    // --- 定义 ----
    // -----------------------------------------------
    // 默认定义
    deque<int> nums_a;

    // 指定大小定义
    deque<int> nums_b(10);

    // 使用初始化列表定义
    deque<int> nums_c{10,  20, 30};

    /*****************************************************************************************************
     * 成员函数
     * ---------------------------------------------------------------------------------------------------
     * array.begin()        返回：随机访问迭代器  首元素位置指针   
     * 
     *****************************************************************************************************/
    
    // array.begin() 
    // -----------------------------------------------
    
    return 0;
}
